CMU 15-721 Lecture 1 - Modern OLAP Database Systems

The History of OLAP

Problem: 隨著數據分析的需求上升,資料庫的使用者已經不再只單純透過 SQL 來查詢資料,而是需要更多的分析功能,最初多透過單體式的資料庫系統去滿足這些需求,讓資料庫管理這些原始資料、聚合資料如何被存放,然而隨著時間和需求變化,誕生了 OLAP (Online Analytical Processing) 為概念的資料庫系統逐漸設計出來。

Data Cubes

Data Warehouse

Andy Pavlo 提到 Data Lake 更像是一個 Marketing Term,其實質意義是指任何人可以將任何資料存放於公開的 Object Store 不必透過 DBA 或特定資料庫去存放資料,而 Data Lakehouse 是指將 Data Lake 和 Data Warehouse 的功能結合在一起,並且透過 Metadata Layer 來管理這些資料。

Share Disk Engines

Lakehouse System 的誕生得益於以下幾個情境:

OLAP DBMS Components

從 Monolithic Database 到 Lakehouse System,OLAP System 的架構逐漸拆分為多個獨立的服務,並且透過相互間的溝通和協作來完成 OLAP 的功能。這些 Component 主要分為:

Architecture Overview

OLAP Architecture Overview

  1. User -> Frontend: 使用者透過 Frontend 進行 Query 的發送
  1. Frontend -> Planner: Frontend 將 Query 轉換成 Tokens 後送至 Planner 並產出 Pyhsical Plan
  1. Scheduler: 將以 IR 表示的 Query Plan 參考 Catalog 提供的 Data Location 去 dispatch Query Plan 到對應 cluster 的 Execution Engine

  2. Execution Engine: 根據 Query Plan 分散處理執行 Query 並且將結果回傳給 User

Snowflake 的 Catalog 使用 FoundationDB 來存放 Metadata,以保證 ACID、高容錯、高效能的特性

延伸問題

See Also

References